/*
 * Copyright (c) 2018-2999 湖南洛云网络科技有限公司 All rights reserved.
 *
 * https://www.gz-yami.com/
 *
 */

package com.yami.shop.groupbuy.comment.model;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.mysql.cj.x.protobuf.MysqlxDatatypes;
import com.yami.shop.groupbuy.comment.enums.ActivityStatusEnum;
import com.yami.shop.groupbuy.comment.utils.GroupActivityUtil;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.Objects;

/**
 * 拼团活动表
 *
 * @author LGH
 * @date 2019-08-27 17:55:57
 */
@Data
@TableName("tz_group_activity")
public class GroupActivity implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 拼团活动id
     */
    @TableId
    private Long groupActivityId;
    /**
     * 店铺id
     */
    private Long shopId;
    /**
     * 活动名称
     */
    private String activityName;
    /**
     * 拼团状态(1:启用、2:未启用、0:已失效、-1:删除、3:违规下架、4:平台审核 5:已结束)
     */
    private Integer status;
    /**
     * 活动开始时间(活动状态：未开始、进行中、已结束)
     */
    private Date startTime;
    /**
     * 活动结束时间(活动状态：未开始、进行中、已结束)
     */
    private Date endTime;
    /**
     * 成团有效期时间
     */
    private Integer groupValidTime;
    /**
     * 成团人数
     */
    private Integer groupNumber;
    /**
     * 商品是否限购
     */
    private Integer hasMaxNum;
    /**
     * 限购数量
     */
    private Integer maxNum;
    /**
     * 是否模拟成团
     */
    private Integer hasRobot;
    /**
     * 团长是否享受优惠
     */
    private Integer hasLeaderPrice;
    /**
     * 活动是否预热
     */
    private Integer isPreheat;
    /**
     * 是否开启凑团模式
     */
    private Long hasGroupTip;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 活动状态（根据活动时间生成）
     */
    @TableField(exist = false)
    private Integer activityStatus;

    /**
     * 获取活动状态（活动状态：1:未开始、2:进行中、3:已结束、4:已失效、5:违规下架、6:待审核）
     */
    public Integer getActivityStatus(){
        return GroupActivityUtil.getActivityStatus(startTime, endTime, status);
    }

}
